The present invention relates generally to the field of computer software execution, and more particularly software problem diagnosis and resolution.
A mix of software products from different vendors may interact to perform a wide range of functions and services in conventional computing systems. Sometimes, a vendor product (herein referred to as an OEM product) may have hooks into a base operating system code. These hooks may be integrated by front-ending supervisor calls (SVCs), to redirect the SVCs, change the location of a module, or load a modified copy of a module into storage. Front ending modifies a table that gives meaning to SVC call numbers. A supervisor call specifies an SVC number. The SVC number defines which function will be performed in response to the supervisor call. For example, a call to SVC 13 may call an ABEND (abnormal end) function. But if a software product alters the target of that reference (SVC 13—ABEND), rather than calling an ABEND, the call could result in allocating a dataset, for instance.
Hooking alters or augments the behavior of an operating system, of an application, or other software components by intercepting function calls, messages or events passed between software components. Code that handles such intercepted function calls, events or messages is called a hook. Hooking is used for many purposes, including debugging and extending software functionality. Examples include intercepting keyboard or mouse event messages before they reach an application, or intercepting operating system calls in order to monitor behavior or modify the function of an application or other component. Hooking is also widely used in benchmarking programs, for instance to measure frame rates in 3D games, where the output and input are done through hooking.